﻿package com.Galaxisfarm {
	// Bibliotecas da game engine Flixel
	import com.adamatomic.flixel.*;
	
	public class Farm {
		// Variável que armazena o tempo
		private static var _time:Number;
		// Variável que armazena o saldo anterior de dinheiro
		private static var _lastMoney:int;
		// Variável que armazena o dinheiro
		private static var _money:int;
		// Variável que armazena todas as árvores criadas
		private static var _trees:FlxArray = null;
		// Variável que armazena o celeiro
		private static var _cowshed:Cowshed = null;
		// Variável que armazena o curral
		private static var _freestall:Freestall = null;
		// Variável que armazena a esterqueira
		private static var _midden:Midden = null;
		// Nome do jogador
		private static var _player_name:String = null;

		// Define o nome do jogador
		public static function setPlayerName(name:String):void {
			_player_name = name;
		}
		
		// Obtém o nome do jogador
		public static function getPlayerName():String {
			return _player_name;
		}
		
		// Método que define a esterqueira
		public static function setMidden(midden:Midden):void {
			_midden = midden;
		}
		
		// Método que obtém a esterqueira
		public static function getMidden():Midden {
			return _midden;
		}
		
		// Método que define o curral
		public static function setFreestall(freestall:Freestall):void {
			_freestall = freestall;
		}
		
		// Método que obtém o curral
		public static function getFreestall():Freestall {
			return _freestall;
		}
		
		// Método que define o celeiro
		public static function setCowshed(cowshed:Cowshed):void {
			_cowshed = cowshed;
		}
		
		// Método que obtém o celeiro
		public static function getCowshed():Cowshed {
			return _cowshed;
		}
		
		// Método que retorna o array das árvores
		public static function getTrees():FlxArray {
			if (_trees == null) {
				// Instância a variável que armazena as árvores criadas
				_trees = new FlxArray();		
			}
			
			return _trees;
		}
		
		// Método que define as árvores
		public static function setTrees(Values:FlxArray):void {
			if (_trees == null) {
				// Instância a variável que armazena as árvores criadas
				_trees = new FlxArray();		
			}
			
			_trees = Values;
		}
		
		// Método que define o tempo
		public static function setTime(Value:Number):void {
			_time = Value;
		}
		
		// Obtém o saldo anterior de dinheiro
		public static function getLastMoney():int {
			return _lastMoney;
		}
		
		// Método que define o dinheiro
		public static function setMoney(Value:int):void {
			_lastMoney = _money;
			_money = Value;
		}
		
		// Método que obtém o tempo
		public static function getTime():Number {
			return _time;
		}
		
		// Método que obtém o dinheiro
		public static function getMoney():int {
			return _money;
		}
	}
}